package com.aaron.remoting.constants;

import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

public class RpcConstants {
    // 魔数,一个英文字母一个字节，共四个字节
    public static final byte[] MAGIC_NUMBER = {(byte) 'g', (byte) 'r', (byte) 'p', (byte) 'c'};
    public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
    // 版本信息，一个数字一个字节
    public static final byte VERSION = 1;
    // ，一个字节
    public static final byte TOTAL_LENGTH = 16;
    // 消息类型，是请求还是响应消息还是连接测试消息ping、pong，1个字节
    public static final byte REQUEST_TYPE = 1;
    public static final byte RESPONSE_TYPE = 2;
    public static final byte HEARTBEAT_REQUEST_TYPE = 3;
    public static final byte HEARTBEAT_RESPONSE_TYPE = 4;
    // 头部长度
    public static final int HEAD_LENGTH = 16;
    public static final String PING = "ping";
    public static final String PONG = "pong";
    // 最大的帧大小，8MB
    public static final int MAX_FRAME_LENGTH = 8 * 1024 * 1024;
}
